home *** CD-ROM | disk | FTP | other *** search
/ Champak 50 / Volume 50 - JOGO DISK .iso / Games / marionettemadness.swf / scripts / frame_1 / DoAction_6.as < prev    next >
Text File  |  2007-10-01  |  15KB  |  557 lines

  1. function xmlLoaded()
  2. {
  3.    _root.xmlBase = xmlDataContainer[xB][xPN];
  4.    xmlIsLoaded = true;
  5.    if(siteIsLoaded)
  6.    {
  7.       init();
  8.    }
  9. }
  10. function siteLoaded()
  11. {
  12.    siteIsLoaded = init;
  13.    if(xmlIsLoaded)
  14.    {
  15.       nextFrame();
  16.    }
  17. }
  18. function resolveAngle(n)
  19. {
  20.    return n < 360 ? (n >= 0 ? n : n + 360) : n - 360;
  21. }
  22. function mouseDistanceAngle(mc)
  23. {
  24.    var _loc1_ = {x:handTarget._x,y:handTarget._y};
  25.    mc._parent.globalToLocal(_loc1_);
  26.    var _loc2_ = new Object();
  27.    _loc2_.rot = resolveAngle(Math.round(Math.atan2(_loc1_.y - mc._y,_loc1_.x - mc._x) * 180 / 3.141592653589793) + 90);
  28.    _loc2_.dist = Math.round(Math.sqrt(Math.pow(_loc1_.x - mc._x,2) + Math.pow(_loc1_.y - mc._y,2)));
  29.    return _loc2_;
  30. }
  31. function findIngredientFrame(n)
  32. {
  33.    var _loc1_ = 0;
  34.    while(_loc1_ < ingredientList.length)
  35.    {
  36.       if(ingredientList[_loc1_] == n)
  37.       {
  38.          return _loc1_ + 1;
  39.       }
  40.       _loc1_ = _loc1_ + 1;
  41.    }
  42.    return -1;
  43. }
  44. function checkIngredient(clp)
  45. {
  46.    trace("check " + clp);
  47.    removeMovieClip(clp);
  48.    for(var _loc3_ in cRoundIngredientClips)
  49.    {
  50.       trace(cRoundIngredientClips[_loc3_] + "==" + clp);
  51.       if(cRoundIngredientClips[_loc3_] == clp)
  52.       {
  53.          trace("found");
  54.          var _loc2_ = cRoundIngredientClips.splice(_loc3_,1);
  55.          redPanel.iCount.text = cRoundIngredientClips.length;
  56.          if(cRoundIngredientClips.length == 0)
  57.          {
  58.             endRound(true);
  59.          }
  60.          playSound("c" + Math.ceil(Math.random() * 4));
  61.          return true;
  62.       }
  63.    }
  64.    redPanel.clock.assessPenalty();
  65.    playSound("m" + Math.ceil(Math.random() * 4));
  66.    return false;
  67. }
  68. function emptyShelves()
  69. {
  70.    lTgts = [topShelf,middleShelf,bottomShelf];
  71.    for(var _loc2_ in lTgts)
  72.    {
  73.       for(var _loc1_ in lTgts[_loc2_])
  74.       {
  75.          if(typeof lTgts[_loc2_][_loc1_] == "movieclip")
  76.          {
  77.             removeMovieClip(lTgts[_loc2_][_loc1_]);
  78.          }
  79.       }
  80.    }
  81. }
  82. function stockShelves(r)
  83. {
  84.    var _loc5_ = undefined;
  85.    var _loc10_ = undefined;
  86.    var _loc8_ = undefined;
  87.    var _loc4_ = undefined;
  88.    var _loc1_ = undefined;
  89.    var _loc3_ = undefined;
  90.    var _loc2_ = undefined;
  91.    var _loc6_ = undefined;
  92.    var _loc7_ = undefined;
  93.    fullWidth = 500;
  94.    dTime = 0;
  95.    tTime = 0.4;
  96.    _loc5_ = roundIngredients[gameRound - 1];
  97.    _loc10_ = [topShelf,middleShelf,bottomShelf];
  98.    cRoundIngredientClips = new Array();
  99.    emptyShelves();
  100.    _loc4_ = 0;
  101.    while(_loc4_ < 3)
  102.    {
  103.       _loc3_ = _loc10_[_loc4_];
  104.       iWidth = 0;
  105.       _loc1_ = 0;
  106.       while(_loc1_ < _loc5_[_loc4_].length)
  107.       {
  108.          _loc2_ = _loc3_.attachMovie("ingredient","i" + _loc1_,_loc3_.getNextHighestDepth());
  109.          _loc2_.myIName = _loc5_[_loc4_][_loc1_];
  110.          _loc2_.iB.gotoAndStop(findIngredientFrame(_loc2_.myIName));
  111.          iWidth += _loc2_._width;
  112.          for(_loc8_ in cRoundIngredients)
  113.          {
  114.             if(cRoundIngredients[_loc8_] == _loc2_.myIName)
  115.             {
  116.                cRoundIngredientClips.push(_loc2_);
  117.                break;
  118.             }
  119.          }
  120.          _loc1_ = _loc1_ + 1;
  121.       }
  122.       _loc6_ = Math.round((fullWidth - iWidth) / _loc5_[_loc4_].length);
  123.       var _loc9_ = Math.round((iWidth + _loc6_ * (_loc5_[_loc4_].length - 1)) / 2);
  124.       _loc1_ = 1;
  125.       while(_loc1_ < _loc5_[_loc4_].length)
  126.       {
  127.          _loc7_ = _loc3_["i" + (_loc1_ - 1)]._x + _loc3_["i" + (_loc1_ - 1)]._width + _loc6_;
  128.          _loc2_ = _loc3_["i" + _loc1_];
  129.          _loc2_._x = _loc7_;
  130.          _loc1_ = _loc1_ + 1;
  131.       }
  132.       dTime += 0.2;
  133.       _loc3_._x = _loc3_.x0 + Math.round((fullWidth - _loc3_._width) / 2);
  134.       _loc4_ = _loc4_ + 1;
  135.    }
  136. }
  137. function moveRemy(v, h)
  138. {
  139.    if(v != "n" && h != "n")
  140.    {
  141.       linguini.remy.gotoAndStop(v + h);
  142.    }
  143. }
  144. function currentShelf()
  145. {
  146.    return crosshairs._y >= topShelf._y ? (crosshairs._y >= middleShelf._y ? bottomShelf : middleShelf) : topShelf;
  147. }
  148. function glowItem(mc, w)
  149. {
  150.    if(w)
  151.    {
  152.       mc.nextFrame();
  153.       var _loc2_ = mc._totalframes;
  154.    }
  155.    else
  156.    {
  157.       mc.prevFrame();
  158.       _loc2_ = 1;
  159.    }
  160.    frameMe(mc,_loc2_,0.5);
  161. }
  162. function checkMouseOvers()
  163. {
  164.    var _loc2_ = [topShelf,middleShelf,bottomShelf];
  165.    var _loc3_ = currentShelf();
  166.    var _loc5_ = lastArm != "left" ? (lastArm != "right" ? null : linguini.rightArm) : linguini.leftArm;
  167.    if(_loc5_)
  168.    {
  169.       var _loc6_ = false;
  170.       for(var _loc1_ in _loc3_)
  171.       {
  172.          if(typeof _loc3_[_loc1_] == "movieclip")
  173.          {
  174.             iHit = _loc5_.fingerTip.hitTest(_loc3_[_loc1_]);
  175.             if(iHit)
  176.             {
  177.                currentIngredient = _loc3_[_loc1_];
  178.                _loc6_ = true;
  179.             }
  180.             if(iHit && _loc3_[_loc1_]._currentframe == 1)
  181.             {
  182.                glowItem(_loc3_[_loc1_],true);
  183.             }
  184.             else if(!iHit && _loc3_[_loc1_]._currentframe == _loc3_[_loc1_]._totalframes)
  185.             {
  186.                glowItem(_loc3_[_loc1_],false);
  187.             }
  188.          }
  189.       }
  190.       if(!_loc6_)
  191.       {
  192.          currentIngredient = null;
  193.       }
  194.    }
  195.    for(_loc1_ in _loc2_)
  196.    {
  197.       if(_loc2_[_loc1_] != _loc3_)
  198.       {
  199.          for(var _loc4_ in _loc2_[_loc1_])
  200.          {
  201.             if(_loc2_[_loc1_][_loc4_]._currentframe == _loc2_[_loc1_][_loc4_]._totalframes)
  202.             {
  203.                _loc2_[_loc1_][_loc4_].gotoAndStop(_loc2_[_loc1_][_loc4_]._totalframes - 1);
  204.                frameMe(_loc2_[_loc1_][_loc4_],1,0.5);
  205.             }
  206.          }
  207.       }
  208.    }
  209.    fingerItem = currentIngredient;
  210. }
  211. function checkClick()
  212. {
  213.    if(overShelves && gameOn && fingerItem)
  214.    {
  215.       checkIngredient(fingerItem);
  216.    }
  217. }
  218. function moveArms()
  219. {
  220.    var _loc1_ = 10;
  221.    crosshairs._x = _xmouse;
  222.    crosshairs._y = _ymouse;
  223.    var _loc3_ = crosshairs._x <= handTarget._x + 1 ? (crosshairs._x >= handTarget._x - 1 ? "n" : "l") : "r";
  224.    var _loc5_ = crosshairs._y <= handTarget._y + 1 ? (crosshairs._y >= handTarget._y - 1 ? "n" : "u") : "d";
  225.    moveRemy(_loc5_,_loc3_);
  226.    xspace = (crosshairs._x - handTarget._x) / _loc1_;
  227.    yspace = (crosshairs._y - handTarget._y) / _loc1_;
  228.    if(Math.abs(xspace) > 0)
  229.    {
  230.       handTarget._x += xspace;
  231.    }
  232.    if(Math.abs(yspace) > 0)
  233.    {
  234.       handTarget._y += yspace;
  235.    }
  236.    if(handTarget._y > bottomCenter._y || handTarget._y < topCenter._y)
  237.    {
  238.       overShelves = false;
  239.       armNow = "none";
  240.       glowItem(currentIngredient,false);
  241.       currentIngredient = null;
  242.       crosshairs._alpha = 0;
  243.       Mouse.show();
  244.    }
  245.    else if(handTarget._x > topCenter._x && handTarget._x < topRight._x)
  246.    {
  247.       overShelves = true;
  248.       armNow = "right";
  249.       linguini.rightArm.moveMe();
  250.       crosshairs._alpha = 100;
  251.       Mouse.hide();
  252.    }
  253.    else if(handTarget._x < topCenter._x && handTarget._x > topLeft._x)
  254.    {
  255.       overShelves = true;
  256.       armNow = "left";
  257.       linguini.leftArm.moveMe();
  258.       crosshairs._alpha = 100;
  259.       Mouse.hide();
  260.    }
  261.    else
  262.    {
  263.       overShelves = false;
  264.       armNow = "none";
  265.       glowItem(currentIngredient,false);
  266.       currentIngredient = null;
  267.       crosshairs._alpha = 0;
  268.       Mouse.show();
  269.    }
  270.    if(lastArm != armNow)
  271.    {
  272.       if(armNow == "left")
  273.       {
  274.          var _loc4_ = linguini.leftArm.y0;
  275.          var _loc6_ = linguini.leftArm.s0;
  276.          var _loc7_ = linguini.rightArm.y0 + armDrop;
  277.          var _loc2_ = 50;
  278.       }
  279.       else if(armNow == "right")
  280.       {
  281.          _loc4_ = linguini.leftArm.y0 + armDrop;
  282.          _loc6_ = 50;
  283.          _loc7_ = linguini.rightArm.y0;
  284.          _loc2_ = linguini.rightArm.s0;
  285.       }
  286.       else
  287.       {
  288.          _loc4_ = linguini.leftArm.y0 + armDrop;
  289.          _loc6_ = 50;
  290.          _loc7_ = linguini.rightArm.y0 + armDrop;
  291.          _loc2_ = 50;
  292.       }
  293.       morphArm(linguini.leftArm,_loc4_,_loc6_,0.7);
  294.       morphArm(linguini.rightArm,_loc7_,_loc2_,0.7);
  295.    }
  296.    lastArm = armNow;
  297.    checkMouseOvers();
  298. }
  299. function startArmTracking()
  300. {
  301.    this.onEnterFrame = function()
  302.    {
  303.       if(gameOn)
  304.       {
  305.          moveArms();
  306.       }
  307.    };
  308. }
  309. function calculateArmFrame(obj, dist)
  310. {
  311.    return Math.round(Math.max(1,Math.min(100,(dist - obj.minDist) * 100 / obj.range)));
  312. }
  313. function prepLinguini()
  314. {
  315.    linguini.leftArm.s0 = linguini.leftArm._yscale;
  316.    linguini.leftArm._yscale = armScale;
  317.    linguini.leftArm.y0 = linguini.leftArm._y;
  318.    linguini.leftArm._y += armDrop;
  319.    linguini.leftArm.minRot = linguiniData.leftArm_minRot;
  320.    linguini.leftArm.maxRot = linguiniData.leftArm_maxRot;
  321.    linguini.leftArm.minDist = linguiniData.leftArm_minDist;
  322.    linguini.leftArm.range = linguiniData.leftArm_maxDist - linguiniData.leftArm_minDist;
  323.    linguini.rightArm.s0 = linguini.rightArm._yscale;
  324.    linguini.rightArm._yscale = armScale;
  325.    linguini.rightArm.y0 = linguini.rightArm._y;
  326.    linguini.rightArm._y += armDrop;
  327.    linguini.rightArm.minRot = linguiniData.rightArm_maxRot;
  328.    linguini.rightArm.maxRot = linguiniData.rightArm_maxRot;
  329.    linguini.rightArm.minDist = linguiniData.rightArm_minDist;
  330.    linguini.rightArm.range = linguiniData.rightArm_maxDist - linguiniData.rightArm_minDist;
  331.    linguini.leftArm.moveMe = linguini.rightArm.moveMe = function()
  332.    {
  333.       var _loc2_ = this._parent._parent.mouseDistanceAngle(this);
  334.       _loc2_.rot = !(_loc2_.rot < this.minRot && _loc2_.rot >= 180) ? (!(_loc2_.rot > this.maxRot && _loc2_.rot < 180) ? _loc2_.rot : this.maxRot) : this.minRot;
  335.       this._rotation = _loc2_.rot;
  336.       var _loc3_ = this._parent._parent.calculateArmFrame(this,_loc2_.dist);
  337.       if(this._currentframe != _loc3_)
  338.       {
  339.          this.gotoAndStop(_loc3_);
  340.       }
  341.    };
  342. }
  343. function setButtonRO(o, s)
  344. {
  345.    o.enabled = s;
  346.    o.rollMC._alpha = 0;
  347.    if(s)
  348.    {
  349.       o.onRollOver = function()
  350.       {
  351.          _root.buttonRoll(this,true);
  352.       };
  353.       o.onRollOut = o.onReleaseOutside = function()
  354.       {
  355.          _root.buttonRoll(this,false);
  356.       };
  357.    }
  358. }
  359. function beginRound(n)
  360. {
  361.    turnGameOn();
  362.    crosshairs._alpha = 100;
  363.    startArmTracking();
  364.    slideMeY(linguini,linguini.yUp,0.7);
  365.    redPanel.clock.initTimer(roundTimes[gameRound]);
  366.    redPanel.clock.startTimer();
  367.    enableHints(true);
  368.    redPanel.helpMe._visible = true;
  369.    stopSounds();
  370.    playSound("inRound",10);
  371. }
  372. function initRound(n)
  373. {
  374.    cRoundIngredients = new Array();
  375.    for(var _loc1_ in recipeIngredients[gameRound])
  376.    {
  377.       cRoundIngredients.push(recipeIngredients[gameRound][_loc1_]);
  378.    }
  379.    stockShelves(gameRound);
  380.    remainingIngs = redPanel.iCount.text = recipeIngredients[gameRound].length;
  381.    clockGoTo(redPanel.clock,1);
  382.    blackPanel.lev.text = "Level #" + gameRound;
  383.    blackPanel.big.text = roundBlackText[gameRound].b;
  384.    blackPanel.small.text = roundBlackText[gameRound].s;
  385.    if(blackPanel._y != blackPanel.yUp)
  386.    {
  387.       slideMeY(blackPanel,blackPanel.yUp,0.5,"easeOutBack");
  388.       slideMeY(redPanel,redPanel.yUp,0.5,"easeOutBack");
  389.    }
  390.    roundIntro.gotoAndPlay(2);
  391.    enableHints(false);
  392. }
  393. function startNextRound()
  394. {
  395.    initRound(gameRound);
  396. }
  397. function getRecipes()
  398. {
  399.    getUrl("javascript: pop(\'marionette_pdf\');", "");
  400. }
  401. function endRound(advance)
  402. {
  403.    Mouse.show();
  404.    emptyShelves();
  405.    turnGameOff();
  406.    crosshairs._alpha = 0;
  407.    slideMeY(linguini,linguini.yDown,0.7);
  408.    slideMeY(blackPanel,blackPanel.yDown,0.5,"easeOutBack");
  409.    slideMeY(redPanel,redPanel.yDown,0.5,"easeOutBack");
  410.    _root.slideMeY(_root.buddies,_root.buddies.yDown,0.7,null,0.5);
  411.    var _loc2_ = !advance ? "loser" : (++gameRound <= 3 ? "nextLevel" : "winner");
  412.    messages.gotoAndStop(_loc2_);
  413.    redPanel.clock.pauseTimer();
  414.    slideMeY(messages,messages.yDown,0.7,"easeOutBack",0.5);
  415.    slideMeY(buddies,buddies.yUp,0.7,null,0.5);
  416.    redPanel.helpMe._visible = false;
  417.    stopSounds();
  418.    if(_loc2_ == "winner" || _loc2_ == "loser")
  419.    {
  420.       playSound(_loc2_);
  421.    }
  422.    else
  423.    {
  424.       playSound("end" + Math.ceil(Math.random() * 4));
  425.    }
  426.    playSound("soundtrack",100);
  427. }
  428. function turnGameOn()
  429. {
  430.    gameOn = true;
  431.    blackPanel.helpMe._visible = false;
  432. }
  433. function turnGameOff()
  434. {
  435.    gameOn = false;
  436.    blackPanel.helpMe._visible = false;
  437. }
  438. function restartGame()
  439. {
  440.    hints = [null,true,true];
  441.    gameRound = 1;
  442.    initRound(gameRound);
  443. }
  444. function enableHints(b)
  445. {
  446.    if(b)
  447.    {
  448.       redPanel.hint1.enabled = hints[1];
  449.       redPanel.hint2.enabled = hints[2];
  450.       if(hints[1])
  451.       {
  452.          dimMe(redPanel.hint1,0,0.5);
  453.       }
  454.       if(hints[2])
  455.       {
  456.          dimMe(redPanel.hint2,0,0.5);
  457.       }
  458.    }
  459.    else
  460.    {
  461.       redPanel.hint1.enabled = redPanel.hint2.enabled = b;
  462.       dimMe(redPanel.hint1,-75,0.5);
  463.       dimMe(redPanel.hint2,-75,0.5);
  464.    }
  465. }
  466. function showInstructions()
  467. {
  468.    enableHints(false);
  469.    pauseTimer();
  470.    turnGameOff();
  471.    messages.gotoAndStop("instructions");
  472.    slideMeY(messages,messages.yDown,0.7,"easeOutBack",0.5);
  473.    redPanel.helpMe._visible = false;
  474. }
  475. function hideHint()
  476. {
  477.    enableHints(true);
  478.    turnGameOn();
  479.    startTimer();
  480.    hintBTN._alpha = hintBTN._visible = 0;
  481.    slideMeY(linguini,linguini.yUp,0.7);
  482.    for(var _loc1_ in cRoundIngredientClips)
  483.    {
  484.       tintMe(cRoundIngredientClips[_loc1_],0,0.7);
  485.    }
  486.    slideMeY(messages,messages.yUp,0.7,"easeOutBack",0.5);
  487.    redPanel.helpMe._visible = true;
  488. }
  489. function displayHint(n)
  490. {
  491.    handTarget._x = 1;
  492.    redPanel.hint1.enabled = redPanel.hint2.enabled = hints[n] = false;
  493.    redPanel["hint" + n].rollMC._alpha = 0;
  494.    dimMe(redPanel["hint" + n],-75,0.5);
  495.    for(var _loc1_ in cRoundIngredientClips)
  496.    {
  497.       tintMe(cRoundIngredientClips[_loc1_],50,1);
  498.    }
  499.    slideMeY(linguini,linguini.yDown,1);
  500.    hintBTN._alpha = 0;
  501.    hintBTN._visible = true;
  502.    alphaMe(hintBTN,100,0.5,null,0.4);
  503.    pauseTimer();
  504.    turnGameOff();
  505. }
  506. function buildFramework()
  507. {
  508.    slideMeXY(siteLogo,siteLogo.xN,siteLogo.yN,0.7,"easeOutBack");
  509.    slideMeY(gameLogo,gameLogo.yDown,0.7,"easeOutBack");
  510.    slideMeY(messages,messages.yDown,0.7,"easeOutBack",0.5);
  511.    slideMeX(soundControl,soundControl.xRight,0.7,"easeOutBack",0.5);
  512.    slideMeY(buddies,buddies.yUp,0.7,null,0.5);
  513. }
  514. function clockGoTo(i, f)
  515. {
  516.    i.gotoAndStop(f);
  517.    i.clockBlack.gotoAndStop(f);
  518. }
  519. function clockTweenTo(i, f)
  520. {
  521.    trace("tween " + i + " to " + f);
  522.    frameMe(i,f * 10,1);
  523.    frameMe(i.clockBlack,f * 10,1);
  524. }
  525. function startTimer()
  526. {
  527.    redPanel.clock.startTimer();
  528. }
  529. function pauseTimer()
  530. {
  531.    redPanel.clock.pauseTimer();
  532. }
  533. function init()
  534. {
  535.    buildFramework();
  536.    topShelf.x0 = topShelf._x;
  537.    middleShelf.x0 = middleShelf._x;
  538.    bottomShelf.x0 = bottomShelf._x;
  539.    prepLinguini();
  540.    setButtonRO(closeBtn,true);
  541.    closeBtn.onRelease = function()
  542.    {
  543.       getUrl("javascript:window.close();", "");
  544.    };
  545.    var _loc2_ = new Object();
  546.    _loc2_.onMouseDown = function()
  547.    {
  548.       _root.checkClick();
  549.    };
  550.    Mouse.addListener(_loc2_);
  551. }
  552. _global.getMCLoadPCT = function(clp)
  553. {
  554.    var _loc1_ = clp;
  555.    return _loc1_.getBytesLoaded() <= 50 ? 1 : _loc1_.getBytesLoaded() / _loc1_.getBytesTotal();
  556. };
  557.